home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / SHN_discard.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  108 lines

  1. #
  2. # This script was written by Vincent Renardias <vincent@strongholdnet.com>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #T
  7.  
  8. if(description)
  9. {
  10.  script_id(11367);
  11.  script_version ("$Revision: 1.2 $");
  12.  script_cve_id("CAN-1999-0636");
  13.  name["english"] = "Discard port open";
  14.  name["francais"] = "Port 'discard' ouvert";
  15.  script_name(english:name["english"], francais:name["francais"]);
  16.  
  17.  desc["english"] = "
  18. The remote host is running a 'discard' service. This service
  19. typically sets up a listening socket and will ignore all the
  20. data which it receives. 
  21.  
  22. This service is unused these days, so it is advised that you
  23. disable it.
  24.  
  25.  
  26. Solution : 
  27.  
  28. - Under Unix systems, comment out the 'discard' line in /etc/inetd.conf
  29.   and restart the inetd process
  30.  
  31. - Under Windows systems, set the following registry key to 0 :
  32.   HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableTcpDiscard
  33.    
  34. Then launch cmd.exe and type :
  35.  
  36.    net stop simptcp
  37.    net start simptcp
  38.    
  39. To restart the service.
  40.  
  41.     
  42. Risk factor : Low";
  43.  
  44.  script_description(english:desc["english"]);
  45.  
  46.  summary["english"] = "Checks if the 'discard' port is open";
  47.  summary["francais"] = "VΘrifie si le port 'discard' est ouvert";
  48.  
  49.  script_summary(english:summary["english"], francais:summary["francais"]);
  50.  
  51.  script_category(ACT_GATHER_INFO);
  52.  
  53.  script_copyright(english:"This script is Copyright (C) 2003 StrongHoldNet",
  54.         francais:"Ce script est Copyright (C) 2003 StrongHoldNet",
  55.         deutsch:"Dieses Skript ist Copyright geschⁿtzt. (C) 2003 StrongHoldNet");
  56.         
  57.  family["english"] = "Useless services";
  58.  family["francais"] = "Services inutiles";
  59.  family["deutsch"] = "Nutzlose Dienste";
  60.  
  61.  script_family(english:family["english"], francais:family["francais"], deutsch:family["deutsch"]);
  62.  script_dependencie("find_service.nes");
  63.  script_require_ports(9);
  64.  
  65.  exit(0);
  66. }
  67.  
  68. #
  69. # The script code starts here
  70. #
  71.  
  72. include("misc_func.inc");
  73.  
  74. port = 9; # Discard is not supposed to run on any other port.
  75. if(known_service(port)) { exit(0); }
  76.  
  77. # We send between 17 and 210 bytes of random data.
  78. # If the service is still listening without any output, we assume
  79. # that 9/tcp is running 'discard'.
  80. function check_discard(soc) {
  81.   local_var i, n, res;
  82.   if(!soc)
  83.    return(0);
  84.  
  85.   n = send(socket:soc, data:string(crap(length:(rand()%193+17), data:string(rand())),"\r\n\r\n"));
  86.   if (n<0)
  87.    return(0);
  88.  
  89.   res = recv(socket:soc, length:1024, timeout:5);
  90.   if(strlen(res) > 0)
  91.    return(0);
  92.  
  93.   return(1);
  94. }
  95.  
  96. if(get_port_state(port))
  97. {
  98.  soc = open_sock_tcp(port);
  99.  if(check_discard(soc)) {
  100.    security_warning(port);
  101.    register_service(port:port,proto:"discard");
  102.    if(soc)
  103.     close(soc);
  104.  }
  105. }
  106.  
  107. exit(0);
  108.